package com.ruoyi.system.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.system.domain.HospitalSubscribeMedicalExaminerInfo;
import com.ruoyi.system.domain.HospitalSubscribeProject;
import com.ruoyi.system.domain.HospitalSubscribeSetMeal;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;


/**
 * 订单对象 hospital_subscribe_order
 *
 * @author ruoyi
 * @date 2025-04-30
 */
@Data
public class HospitalSubscribeOrderVo {

    /**
     * id
     */
    private Long id;
    private Long userId;

    /**
     * 订单号
     */
    @Excel(name = "订单号")
    private String orderNo;

    /**
     * 付款总金额
     */
    @Excel(name = "付款总金额")
    private BigDecimal money;

    /**
     * 0未付款 1已付款 2已取消 3全额退款 4部分订单退款
     */
    @Excel(name = "0未付款 1已付款 2已完成 3全额退款 4部分订单退款 5已关闭 6完成中")
    private Integer status;

    /**
     * 付款方式 0微信
     */
    @Excel(name = "付款方式 0微信")
    private Integer paymentType;

    /**
     * 已退款金额
     */
    @Excel(name = "已退款金额")
    private BigDecimal refundAmount;

    /**
     * 付款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "付款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paymentTime;

    /**
     * 完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date completeTime;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 预约时间id
     */
    @Excel(name = "预约时间id")
    private Long scheduleCapacityId;

    @Excel(name = "体检人信息id")
    private Long examinerInfoId;

    /**
     * 退款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "退款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date refundTime;

    /** 商户退款单号 */
    @Excel(name = "商户退款单号")
    private String outRefundNo;

    /** 微信退款单号 */
    @Excel(name = "微信退款单号")
    private String weChatRefundOrderNo;

    private String weChatOrderNo;

    /**
     * 0套餐
     */
    @Excel(name = "0套餐")
    private Integer itemType;

    /**
     * 关联商品/项目id
     */
    @Excel(name = "关联商品/项目id")
    private Long projectId;

    /**
     * 数量
     */
    @Excel(name = "数量")
    private Integer number;

    /**
     * 预约时间
     */
    @Excel(name = "预约时间")
    private String date;

    /**
     * 开始
     */
    private String startTime;

    /**
     * 结束
     */
    private String endTime;

    /** 二维码地址 */
    @Excel(name = "二维码地址")
    private String codeUrl;

    /** 检查项目图片地址 */
    @Excel(name = "检查项目图片地址")
    private String projectPhotographUrl;

    /**
     * 套餐信息
     */
    private HospitalSubscribeSetMeal meal;

    /**
     * 检查项信息
     */
    private HospitalSubscribeProject project;

    /**
     * 预约人信息
     */
    private HospitalSubscribeMedicalExaminerInfo examinerInfo;
}
